home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
SCSI.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
8KB
|
266 lines
/*
File: SCSI.idl
Contains: SCSI Family Interfaces.
Version: Technology: System 8.0
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __SCSI_IDL__
#define __SCSI_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __TYPES_IDL__
#include <Types.idl>
#endif
#ifndef __MIXEDMODE_IDL__
#include <MixedMode.idl>
#endif
#if FOR_SYSTEM8_PREEMPTIVE
#ifndef __KERNEL_IDL__
#include <Kernel.idl>
#endif
#ifndef __NAMEREGISTRY_IDL__
#include <NameRegistry.idl>
#endif
#ifndef __IOITERATOR_IDL__
#include <IOIterator.idl>
#endif
#endif
#ifdef __SOMIDL__
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/* SCSI Manager errors */
#endif
#if FOR_SYSTEM7_ONLY
/* TIB opcodes */
/* Signatures */
/* Driver Descriptor Map */
typedef SOMLargeStruct Block0; /* Derived from a struct of 512 bytes in size */
/*Driver descriptor*/
typedef SOMLargeStruct DDMap; /* Derived from a struct of 8 bytes in size */
/* Partition Map Entry */
typedef SOMLargeStruct Partition; /* Derived from a struct of 512 bytes in size */
/* TIB instruction */
typedef SOMLargeStruct SCSIInstr; /* Derived from a struct of 10 bytes in size */
/* SCSI Phases (used by SIMs to support the Original SCSI Manager */
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/* SCSI Callback Procedure Prototypes */
typedef OpaquePtr AENCallbackProcPtr;
typedef OpaquePtr AENCallbackUPP;
typedef OpaquePtr SIMInitProcPtr;
typedef OpaquePtr SIMInitUPP;
typedef OpaquePtr SIMActionProcPtr;
typedef OpaquePtr SIMActionUPP;
typedef OpaquePtr SCSIProcPtr;
typedef OpaquePtr SCSIUPP;
typedef OpaquePtr SCSIMakeCallbackProcPtr;
typedef OpaquePtr SCSIMakeCallbackUPP;
/* SCSIInterruptPollProcPtr is obsolete (use SCSIInterruptProcPtr) but still here for compatibility */
typedef OpaquePtr SCSIInterruptPollProcPtr;
typedef OpaquePtr SCSIInterruptPollUPP;
typedef OpaquePtr SCSIInterruptProcPtr;
typedef OpaquePtr SCSIInterruptUPP;
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
typedef OpaquePtr SCSICallbackProcPtr;
typedef OpaquePtr SCSICallbackUPP;
#endif
#if FOR_SYSTEM7_ONLY
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
/* SCSI Manager function codes */
/* Define DeviceIdent structure */
typedef SOMFourByteStruct DeviceIdent; /* Derived from a struct of 4 bytes in size */
/*
#endif // FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
*/
/* Allocation length defines for some of the fields */
typedef OpaquePtr SCSIDataPtr; /* Substituted OpaquePtr for ``octet*'' */
/* Command Descriptor Block structure */
typedef SOMLargeStruct CDB; /* Derived from a struct of 20 bytes in size */
typedef OpaquePtr CDBPtr; /* Substituted OpaquePtr for ``CDB*'' */
/* Scatter/gather list element */
typedef SOMLargeStruct SGRecord; /* Derived from a struct of 8 bytes in size */
/*
#endif // FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
*/
typedef SOMLargeStruct SCSIHdr; /* Derived from a struct of 36 bytes in size */
typedef SOMLargeStruct SCSI_PB; /* Derived from a struct of 36 bytes in size */
/*
#endif // FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
This is temporary until we have connection protocol ready.
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
*/
typedef SOMLargeStruct SCSI_IO; /* Derived from a struct of 176 bytes in size */
typedef SCSI_IO SCSIExecIOPB;
/* Bus inquiry PB */
typedef SOMLargeStruct SCSIBusInquiryPB; /* Derived from a struct of 172 bytes in size */
/* Abort SIM Request PB */
typedef SOMLargeStruct SCSIAbortCommandPB; /* Derived from a struct of 40 bytes in size */
/* Terminate I/O Process Request PB */
typedef SOMLargeStruct SCSITerminateIOPB; /* Derived from a struct of 40 bytes in size */
/* Reset SCSI Bus PB */
typedef SOMLargeStruct SCSIResetBusPB; /* Derived from a struct of 36 bytes in size */
/* Reset SCSI Device PB */
typedef SOMLargeStruct SCSIResetDevicePB; /* Derived from a struct of 36 bytes in size */
/* Release SIM Queue PB */
typedef SOMLargeStruct SCSIReleaseQPB; /* Derived from a struct of 36 bytes in size */
#endif
#if FOR_SYSTEM7_ONLY
/* SCSI Get Virtual ID Info PB */
typedef SOMLargeStruct SCSIGetVirtualIDInfoPB; /* Derived from a struct of 40 bytes in size */
/* Create/Lookup/Remove RefNum for Device PB */
typedef SOMLargeStruct SCSIDriverPB; /* Derived from a struct of 44 bytes in size */
/* Load Driver PB */
typedef SOMLargeStruct SCSILoadDriverPB; /* Derived from a struct of 40 bytes in size */
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
/* Defines for the scsiTransferType field */
/* New errors for SCSI Family */
/* Defines for the scsiResultFlags field */
/* Defines for the bit numbers of the scsiFlags field in the PB header for the SCSIExecIO function */
/* Defines for the bit masks of the scsiFlags field */
/* bit masks for the scsiIOFlags field in SCSIExecIOPB */
/* Defines for the Bus Inquiry PB fields. */
/* scsiHBAInquiry field bits */
/* Defines for the scsiDataType field */
/* scsiDataTypes field bits */
/* bits 0->15 Apple-defined, 16->30 3rd-party unique, 31 = reserved */
/* scsiScanFlags field bits */
/* scsiFeatureFlags field bits */
/* scsiWeirdStuff field bits */
/* scsiHBAslotType values */
#endif
#if FOR_SYSTEM7_ONLY
/* Defines for the scsiDriverFlags field (in SCSIDriverPB) */
/* SCSI status*/
/* SCSI messages*/
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/* SIMInitInfo PB */
/* directions are for SCSIRegisterBus call ( -> parm, <- result) */
typedef SOMLargeStruct SIMInitInfo; /* Derived from a struct of 60 bytes in size */
/* Glue between SCSI calls and SCSITrap format */
/* moveq #kSCSIx, D0; _SCSIAtomic */
#endif
#if FOR_SYSTEM8_PREEMPTIVE
/*
File: SCSIConn.h
Contains: Connection Based parameter checking
Version: 0.1
Written by: Darryl Chan
Copyright: © 1995-1996 by Apple Computer, Inc., all rights reserved.
File Ownership:
DRI: Darryl Chan
Other Contact: Stanford Au
Technology: IO Group
Writers:
(DC) Darryl Chan
Change History (most recent first):
<4> 1/25/96 DC Integrate to D11 - name registry changes
<3> 1/18/96 DC Split file to public and private interfaces and converting to
MrC.
<2> 1/15/96 DC Add more commands
<1> 1/3/96 DC First checked in.
*/
typedef UInt32 ConnectionType;
typedef ObjectID ConnectionID;
typedef MessageID SCSIExecIOTag;
/* values for 'type's of connection (UInt16)*/
typedef SOMLargeStruct SCSIDataObject; /* Derived from a struct of 12 bytes in size */
typedef SOMLargeStruct SCSICDBObject; /* Derived from a struct of 18 bytes in size */
typedef SOMLargeStruct SCSIFlagsObject; /* Derived from a struct of 8 bytes in size */
typedef SOMLargeStruct SCSIExecIOResult; /* Derived from a struct of 272 bytes in size */
typedef SOMLargeStruct SCSIIOOptionsObject; /* Derived from a struct of 8 bytes in size */
typedef SOMLargeStruct SCSIHandshakeObject; /* Derived from a struct of 16 bytes in size */
typedef SOMLargeStruct SCSIBusInfo; /* Derived from a struct of 134 bytes in size */
typedef OpaquePtr DeviceType; /* Substituted OpaquePtr for array of char of size 9 */
/* this replaces SCSIDevList*/
typedef SOMLargeStruct SCSIIOIteratorData; /* Derived from a struct of 33 bytes in size */
/*
_____________________________________________________________________
Client type used to identify the type of client we are dealing
with.
_____________________________________________________________________
*/
typedef UInt8 ClientType;
/* for Client type*/
/*
New command to get Registry Entry ID for the SCSI Plugin
*/
typedef SOMLargeStruct SCSIGetRegEntryIDPB; /* Derived from a struct of 52 bytes in size */
/* Functions declarations*/
#endif
#endif /* __SOMIDL__ */
#endif /* __SCSI_IDL__ */